<?php
// L3 MIAGE Nice - Gestion de projets et Analyse des besoins - 2010-2011
// Création d'un site internet de vente de vidéos en ligne
// 
// commande.php - Contenu de la page de commande
// 
// Auteur : (groupe 15) Shyn-Yuan CHENG, Abdoul Mazid DIALLO, LAGNEAU Sébastien, NJOTCHA-NJOTCHA Franck-Merlin
// 

// Vérifier que le fichier est inclus à index.php sinon arrêter le script
//
if(!defined("VERIFINCLUDE") || VERIFINCLUDE!=0) die();

// inclure le fichier nécessaire;
//
require_once("includes/functions_panier.php");

if(!isset($_SESSION["loginCl"]) || $_SESSION["loginCl"] == "") {
	// On affiche la page d'enregistrement et la page de login
	//
	echo("Veuillez vous enregistrer ou vous connecter avant de commander !");
	require_once("formInscription.php");
	require_once("formLogin.php");
}
else {
   require_once("formCommande.php");
   
   // Traiter le cas où l'utilisateur a confirmé sa commande
   //
   if(isset($_POST["confirmer"])) {
      if(!preg_match('`[0-9]{16}`',$_POST["ncb"]))print ("<script type='text/javascript'>window.alert('Votre commande n\'est pas prise en compte : numéro de carte bancaire invalide !'); window.location.replace('index.php');</script>");
      elseif(!preg_match('`[0-9]{3}`',$_POST["nv"]))print ("<script type='text/javascript'>window.alert('Votre commande n\'est pas prise en compte : numéro de vérification invalide !'); window.location.replace('index.php');</script>");
      else{
         // Récupérer les montants totaux HT et TTC
         //
         $montantGlobalHT = MontantGlobalHT();
         $montantGlobalTTC = MontantGlobalTTC($montantGlobalHT);
   
         // Enregistrer la commande dans la BD
         //
         try {
            $db = dbfactory::factory ('mysql');
         } catch (Exception $e) {
            die($e->getmessage());
         }
   
         // Insertion dans les tables commande et ligneCommande
         //
         $sql="SET AUTOCOMMIT=1"; // Désactiver l'autocommit dans MySQL
         $requete= $db->query($sql);
   
         $sql="START TRANSACTION"; // Début de la transaction
         $requete= $db->query($sql);
   
         $sql = "INSERT INTO commande (loginCl, totalHT, totalTTC, dateCom, estLivree) ";
         $sql.= "VALUES('".addslashes($_SESSION["loginCl"])."', $montantGlobalHT, $montantGlobalTTC, now(), 2)";
         $requete= $db->query($sql);
      
         $numCom= mysql_insert_id(); // Récupérer le numéro de la commande
   
         for($i = 0; $i < count($_SESSION['panier']['idProduit']); $i++) { // Parcours des produits du panier
            $idProduit= $_SESSION['panier']['idProduit'][$i];
            $qte= $_SESSION['panier']['qte'][$i];
            $PUHT= $_SESSION['panier']['prixUHT'][$i];
            $PUTTC= $_SESSION['panier']['prixUHT'][$i]*TVA;
            $PLHT= $_SESSION['panier']['prixUHT'][$i]*$qte;
            $PLTTC= $_SESSION['panier']['prixUHT'][$i]*TVA*$qte;
      
            $sql= "UPDATE produit SET stock=stock-'$qte' WHERE idProduit='$idProduit'";
            $requete= $db->query($sql);
      
            $sql = "INSERT INTO ligneCommande (numCom, idProduit, qte, PUHT, PUTTC, PLHT, PLTTC)";
            $sql.= "VALUES($numCom, $idProduit, $qte, $PUHT, $PUTTC, $PLHT, $PLTTC)";
            $requete= $db->query($sql);
         }
   
         $sql="COMMIT"; // COMMIT
         $requete= $db->query($sql);
   
         $sql="SET AUTOCOMMIT=1"; // Réactiver l'autocommit dans MySQL
         $requete= $db->query($sql);
   
   
         // réinitialiser le panier, avertir l'utilisateur de la prise en compte de la commande et rediriger vers la page d'accueil
         //
         unset($_SESSION["panier"]);
         print ("<script type='text/javascript'>window.alert('Votre commande est prise en compte !'); window.location.replace('index.php');</script>");
      }
   }
}

?>
